{#include main fluid=true}
   {#style}
   .annotation {
     color: gray;
     font-style: italic;
   }
   span.larger-badge {
     font-size: 0.9em;
   }
  {/style}
  {#script}
    $(document).ready(function(){
      if (!ideKnown()) {
        return;
      }
      $(".class-candidate").each(function() {
        var className = $(this).text();
        if (appClassLocation(className)) {
          $(this).addClass("app-class");
        }
      });

      $(".app-class").on("click", function() {
        openInIDE($(this).text());
      });
    });
  {/script}
  {#title}Observers{/title}
  {#body}
  <table class="table table-striped">
   <thead class="thead-dark">
    <tr>
      <th scope="col">#</th>
      <th scope="col">Source</th>
      <th scope="col">Observed Type/Qualifiers</th>
      <th scope="col">Priority</th>
      <th scope="col">Reception</th>
      <th scope="col">Transaction Phase</th>
      <th scope="col">Async</th>
    </tr>
   </thead>
   <tbody>
    {#for observer in info:devBeanInfos.observers}
    <tr>
      <td>{observer_count}.</td>
      <td>
       {#if observer.declaringClass}
       <span class="class-candidate">{observer.declaringClass}</span>#{observer.methodName}()
       {#else}
       <span class="badge badge-secondary larger-badge">Synthetic</span>
       {/if}
      </td>
      <td>
       {#each observer.qualifiers}
        <span title="{it}" class="annotation"><i>{it.simpleName}</i> </span>
       {/each}
       {observer.observedType}
      </td>
      <td><span class="badge rounded-pill bg-info text-light larger-badge" title="Priority: {observer.priority}">{observer.priority}</span></td>
      <td>
       {observer.reception}
      </td>
      <td>
       {observer.transactionPhase}
      </td>
      <td>
       {observer.async}
      </td>
     </tr>
    {/for}
   </tbody>
  </table>
 {/body}
{/include}
